#ifndef _SIMULATION_CONTROLLER_H_
#define _SIMULATION_CONTROLLER_H_

#include "Box2D\Box2D.h"
#include "glui\glui.h"
#include "freeglut\freeglut.h"
#include "game_scenario.h"

struct WindowSettings
{
	int32    a_width;
	int32    a_height;
	float32  a_viewZoom;
	b2Vec2   a_viewCenter;
	int      a_x, a_y, a_w, a_h;
	WindowSettings();
	void modifyViewCenter(b2Vec2 viewCenter);
};

class GameInterface   // TO DO : this class should not be copied
{
private:
	static GameScenario*   ap_game;
	static int32            a_framePeriod;
	static WindowSettings   a_windowSettings;
	int32                   a_mainWindow;

public:
	GameInterface();
	~GameInterface();
	void changeGame();
	void initializeGraphics();
	static void startTimer(int32 mainWindow);
	static void makeSimulationStep();
	static void processPressKeyboardEvent(unsigned char key, int mouseXLocation, int mouseYLocation);
	static void processHoldKeyboardEvent(unsigned char key, int mouseXLocation, int mouseYLocation);
	static void resizeView(int32 windowWidth, int32 windowHeight);
	void endCurrentGame();
	void passViewCenterSettingsToGame();
};

#endif

